﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using DAL;
using DataAccessComponents;
using System.Collections.ObjectModel;

namespace BusinessLogicLayer
{
    public class GaleriaBL : IBusinessLogicLayer<Galeria>
    {
        private DbOperations dal = new DbOperations();

        /// <summary>
        /// Funkcja dodawająca galerie do bazy danych
        /// </summary>
        /// <param name="objDodaj">Obiekt Galeria</param>
        /// <returns></returns>
        public int dodaj(Galeria objDodaj)
        {
            return dal.dodajGalerie(objDodaj);
        }

        /// <summary>
        /// Funkcja usuwająca galerie z bazy danych
        /// </summary>
        /// <param name="idusun">Id galeri do usunięcia</param>
        public void usun(int idusun)
        {
            ZdjecieBL zdjecieBL = new ZdjecieBL();
            // Usuwanie zdjec z galerii
            zdjecieBL.usun(zdjecieBL.pobierzListe(idusun));

            Galeria_ZdjeciaBL gzBL = new Galeria_ZdjeciaBL();
            gzBL.usun(idusun);
            dal.usunGalerie(idusun);
        }

        /// <summary>
        /// Funkcja akutualizująca galerie w bazie danych
        /// </summary>
        /// <param name="objAktualizuj">Obiekt galeria zawierający inforamacje do aktualizacji</param>
        public void aktualizuj(Galeria objAktualizuj)
        {
            dal.aktualizujGalerie(objAktualizuj);
        }

        /// <summary>
        /// Pobiera galerie na podstawie id galeria
        /// </summary>
        /// <param name="idpobierz">Id galeria</param>
        /// <returns>Obiekt Galeria</returns>
        public Galeria pobierz(int idpobierz)
        {
            return dal.pobierzGalerie(idpobierz);
        }

        /// <summary>
        /// Pobiera objAktualizuj główne galerii na postawie id galeria
        /// </summary>
        /// <param name="idgaleria">Id galeria</param>
        /// <returns>Obiekt Zdjecie</returns>
        public Zdjecie pobierzZdjecieGlowneGaleria(int idgaleria)
        {
            return dal.pobierzZdjecieGlowneGaleria(idgaleria);
        }


        public ObservableCollection<Galeria> pobierzListe()
        {
            throw new NotImplementedException();
        }

        public bool aktualizujListe(ObservableCollection<Galeria> lista)
        {
            throw new NotImplementedException();
        }

        public bool usun(ObservableCollection<Galeria> lista)
        {
            throw new NotImplementedException();
        }
    }
}
